package com.hgkj.cloud.base.dao;

import com.hgkj.cloud.base.domain.TenantSchemeInfo;
import com.hgkj.cloud.base.domain.VO.UserDevReport;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface TenantSchemeInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(TenantSchemeInfo record);

    int insertSelective(TenantSchemeInfo record);

    TenantSchemeInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(TenantSchemeInfo record);

    int updateByPrimaryKey(TenantSchemeInfo record);

    int deleteSchemeInfo(Long id);

    TenantSchemeInfo selectSchemeDevInfo(Map<String, Object> map);

    List<TenantSchemeInfo> listSchemeDevInfo(Long scheme_id);

    List<TenantSchemeInfo> listSchemeInfo(Map<String, Object> map);

    Map<String,Object> countSchemeRemainTimes(Long scheme_id);

    Map<String,Object> countSchemeDevNums(Long scheme_id);

    Long countTenantSchemeUnfinished(Map<String, Object> map);

    List<UserDevReport> listDeviceReports(Map<String, Object> map);

    long countDeviceReports(Map<String, Object> map);

    long countSubDeviceReports(Map<String, Object> map);

    List<UserDevReport> listAllDeviceReports(Map<String, Object> map);

    long countAllDeviceReports(Map<String, Object> map);

    List<UserDevReport> listUserDeviceReports(Map<String, Object> map);

    List<UserDevReport> listUserQueryReports(Map<String, Object> map);

    List<UserDevReport> getUserAllDevReport(Map<String, Object> map);

    Long getUserAllDevReportCount(Map<String, Object> map);

    List<Map<String,Object>> getGroupSchemeInfoList(Map<String, Object> map);
}